Hardware Filtering of Unsolicited Grant Service Extended Headers

ABSTRACT

A system and method is presented that uses hardware at a central node to determine if bandwidth being provided to a remote node in accordance with an unsolicited grant service (UGS) flow requires adjustment. In one embodiment, the hardware performs this function by comparing information in two consecutively-received UGS extended headers from the same remote device. If the information in the current and previous UGS extended headers differ, then an indication is provided to software of the central node that the bandwidth being provided to the remote node requires adjustment.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.11/546,393, filed Oct. 12, 2006, which will issue as U.S. Pat. No.7,843,955 on Nov. 30, 2010, which is a continuation of U.S. applicationSer. No. 10/252,420, filed Sep. 24, 2002, now U.S. Pat. No. 7,379,472,issue date May 27, 2008, which claims priority to Provisional U.S.Patent Application No. 60/324,912, filed Sep. 27, 2001, all of which areincorporated herein in its entirety by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is generally related to the filtering ofunsolicited grant service (UGS) extended headers to ensure that adequatebandwidth is being provided to a data provider during a UGS flow over awireless communication system.

2. Background Art

The importance to the modern economy of rapid data access and exchangecannot be overstated. This explains the exponentially increasingpopularity of the data access and exchange via cable networks (includingcoaxial cable or Hybrid fiber coaxial cable), the Internet, intranets,wireless networks, satellites and so forth (i.e., communicationmediums). Rapid data access and exchange is partly dependent upon howefficiently bandwidth is allocated to a data provider in order for thedata provider to transfer the requested data to a user via one of thecommunication mediums mentioned above.

One very desirable solution for rapid data access and exchange is viacable networks and cable modems. Cable modems provide asynchronouscommunications on cable networks. In general, a user connects a cablemodem to the TV outlet for his or her cable TV, and the cable TVoperator connects a cable modem termination system (“CMTS”) in theoperator's headend. The CMTS is a central device for connecting thecable network to a data network like the Internet. The CMTS is a centraldistribution point for a cable system. Data flows “downstream” from theCMTS to the cable modem (i.e., downstream communication). Alternatively,data flows “upstream” from the cable modem to the CMTS (i.e., upstreamcommunication).

A common cable modem standard today is the Data Over Cable ServiceInterface Specification (“DOCSIS”). DOCSIS defines technicalspecifications for both cable modems and CMTS.

In general, a cable modem forwards or provides data via asynchronouscommunications on cable networks. The cable modem receives data from auser that needs to be transferred via a cable network. For many types ofdata, in order for the cable modem to transfer the data via a cablenetwork it must request that the CMTS grant to it the necessarybandwidth. Alternatively, when voice traffic is involved, the CMTSautomatically grants bandwidth to the cable modem (referred to asunsolicited grant service (UGS)). One reason for this automatic grant ofbandwidth is that voice traffic (or traffic data) cannot tolerate delaysin its transfer. Therefore, since constant voice traffic is sodeterministic (i.e., constant bit rate), the CMTS can generate bandwidthgrants at a certain periodicity without the need of bandwidth requestsfrom the data provider (e.g., cable modem).

With UGS, the cable modem calculates the grant size of bandwidth and theperiodicity of that grant size of bandwidth that the CMTS needs tosupply in order to adequately service a voice call. If the cable modemis supporting more than one user (i.e., phone line) then the cable modemneeds to inform the CMTS to supply twice the amount of requestedbandwidth with the same periodicity in order to adequately support twovoice calls, and so forth. The CMTS may end up not providing enoughbandwidth requests to the cable modem if the internal clocks of the CMTSand cable modem differ. For example, the cable modem may require 64bytes of bandwidth every 3.9999 milliseconds in order to adequatelyservice a voice call. The CMTS may, due to its internal clock beingdifferent from the internal clock of the cable modem, may end upgranting 64 bytes of bandwidth every 4.0001 milliseconds. Here, thecable modem may end up queuing up data packets that are not gettingserviced in a timely manner.

To ensure that the CMTS is adequately providing enough bandwidth to thecable modem for the entire voice call (or current UGS flow), DOCSISprovides a mechanism by which the CMTS software examines consecutivevoice packets (i.e., the UGS extended headers of the voice packets) todetermine if there is an indication that extra bandwidth grants areneeded by the cable modem to service the voice call (i.e., voice packetsare backing up in the cable modem queue). Also, once the CMTS startssupplying extra bandwidth grants, the CMTS needs to know when the cablemodem no longer requires extra bandwidth grants (i.e., voice packets arenot backing up in the cable modem queue). In order to determine whenextra bandwidth requests are needed and when the extra bandwidthrequests are no longer needed, the CMTS software examines the UGSextended headers of two consecutive voice packets. A change in the UGSextended header indicates a change in the number of grants needed. Whenthere is no change required in the UGS flow, the CMTS software expendsunnecessary CPU cycles comparing consecutive voice packets.

BRIEF SUMMARY OF THE INVENTION

The present invention uses hardware to determine if bandwidth beingprovided to a remote node in accordance with an unsolicited grantservice (UGS) flow requires adjustment. In one embodiment, the hardwareperforms this function by comparing information in twoconsecutively-received UGS extended headers from the same remote device.If the information in the current and previous UGS extended headersdiffer, then an indication is provided to software of the central nodethat the bandwidth being provided to the remote node requiresadjustment.

In particular, a central node in a wireless point-to-multipointcommunication system in accordance with an embodiment of the presentinvention includes receiver logic and a hardware-implemented packetengine. The receiver logic is configured to wirelessly receive a voicepacket from a remote node in the wireless point-to-multipointcommunication system, the voice packet comprising part of an unsolicitedgrant service flow and including a current indicator data field. Thehardware-implemented packet engine is configured (i) to compare thecurrent indicator data field with a previous indicator data fieldassociated with a previously-received voice packet from the remote nodeto determine if there is a difference between the current and theprevious indicator data fields, and (ii) to provide an indication thatthe bandwidth being provided to the remote node requires adjustment forthe unsolicited grant service flow responsive to a determination thatthere is a difference between the current and the previous indicatordata fields.

A central node in a wireless point-to-multipoint communication system,in accordance with an alternate embodiment of the present inventionincludes receiver logic and a hardware-implemented packet engine. Thereceiver logic is configured to wirelessly receive a voice packet from aremote node in the wireless point-to-multipoint communication system,the voice packet comprising part of an unsolicited grant service flowand including a voice packet header. The hardware-implemented packetengine is configured (i) to analyze the voice packet header, and (ii) toprovide an indication that the bandwidth being provided to the remotenode requires adjustment for the unsolicited grant service flowresponsive to the analysis of the voice packet header.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The present invention will be described with reference to theaccompanying drawings, wherein:

FIG. 1 is a block diagram representing an example operating environmentfor unsolicited grant service according to an embodiment of the presentinvention.

FIG. 2 is a block diagram representing an example operating environmentaccording to an embodiment of the present invention.

FIG. 3 illustrates the hardware components that make up the packetengine according to an embodiment of the present invention.

FIG. 4 illustrates the hardware components of external upstream SDRAMthat are utilized by the present invention according to an embodiment.

FIG. 5 illustrates an example format of an individual voice packet usedby the present invention according to an embodiment.

FIG. 6 is a high level flowchart of unsolicited grant service (UGS)according to an embodiment of the invention.

FIG. 7 illustrates a high level operational embodiment of the presentinvention.

FIG. 8 is a flowchart illustrating how the present invention determineswhether the current and previous UGS extended headers for the same SIDdiffer according to an embodiment.

FIG. 9 is a flowchart illustrating how the present invention processesthe UGS extended header to create a new voice packet in a TLV formataccording to an embodiment.

FIG. 10. is a block diagram illustrating how CMTS, CMTS scheduler, cablemodem scheduler, connection admission control, packet engine and SDRAMcontroller may be implemented according to an embodiment of theinvention.

DETAILED DESCRIPTION OF THE INVENTION A. Overview of the Invention B.Overview of Unsolicited Grant Service C. System Architecture Overview D.Voice Packet Format E. Example Operational Embodiment of the PresentInvention F. Example Environment of the Present Invention G. ConclusionA. Overview of the Invention

The present invention, by using hardware instead of software to comparefor bandwidth request changes between two consecutively receivedunsolicited grant service (UGS) extended headers for the same SID,obtains significant savings in CPU cycles for the CMTS software. Forillustration purposes, the present invention is described in terms ofbeing utilized with a cable network and DOCSIS. It should be understoodthat the present invention is independent of the actual physical layerof transmission utilized by DOCSIS (e.g., TDMA, SCDMA, etc.). It shouldalso be understood that the present invention is not limited to use witha cable network and/or DOCSIS. In fact, the present invention may beused with any communication medium, including but not limited to, theInternet, intranets, fiber optic networks, wireless networks andsatellite-based networks.

The present invention is described with reference to voice traffic orvoice data. But, data in the present invention includes any type ofinformation that is deterministic (i.e., a constant bit rate), such asvoice traffic. Thus, the present invention can be used for any constantbit rate source. Prior to discussing the specifics of the presentinvention, an overview of unsolicited grant service (UGS) is provided.

B. Overview of Unsolicited Grant Service

FIG. 1 is a block diagram representing an example operating environmentfor unsolicited grant service. It should be understood that the exampleoperating environment in FIG. 1 is shown for illustrative purposes onlyand does not limit the invention. Referring to FIG. 1, a cable modemtermination system (CMTS) 102, a cable modem 104, downstreamcommunication 106 and upstream communication 108 are shown. CMTS 102further includes a CMTS scheduler 110 and a connection admission control112. Cable modem 104 further includes a cable modem scheduler 114. Eachof these components will be briefly described next.

In general, cable modem 104 forwards or provides data via asynchronouscommunications on cable networks. Cable modem 104 receives data from auser that needs to be transferred via a cable network. For many types ofdata, in order for cable modem 104 to transfer the data via a cablenetwork it must request that CMTS 102 grant to it the necessarybandwidth. Alternatively, when voice traffic is involved, CMTS 102automatically grants bandwidth to cable modem 104. One reason, amongothers, for this automatic grant of bandwidth is that voice traffic (ortraffic data) cannot tolerate delays in its transfer. Therefore, sinceconstant voice traffic is so deterministic (i.e., constant bit rate),CMTS 102 can generate bandwidth grants at a certain periodicity withoutthe need of bandwidth requests from the data provider (e.g., cablemodem).

Packetized voice generates a fixed size packet at deterministicinstants. This means that cable modem 104 requires an upstreamtransmission opportunity at regular intervals of time. The periodicitydepends on packetization of voice. One example that is not meant tolimit the present invention is when G.711 PCM voice generates a byte ofdata every 125 microsecs or 64 Kbps. If these bytes are accumulated into10 ms packets, the packet size would be 80 bytes of data. Therefore,every 10 ms, cable modem 104 will need enough upstream bandwidth totransmit 80 bytes of data plus packetization overhead. As mentionedabove, if the internal clocks of cable modem 104 and CMTS 102 differ,then cable modem 104 may request extra bandwidth for some period oftime.

Cable modem scheduler 114 of cable modem 104 is responsible formultiplexing the internal traffic (i.e., requesting the necessarybandwidth that cable modem 104 needs to transfer its current types ofdata). Cable modem scheduler 114 must take into consideration thedifferent priorities given to the current data to be transferred and torequest bandwidth from CMTS 102 accordingly.

CMTS 102 is a central device for connecting the cable network to a datanetwork. CMTS scheduler 110 is a bandwidth manager that decides how togrant available bandwidth according to the current bandwidth requests.Connection admission control 112 decides whether or not to admit moretraffic in the system. The functionality of connection admission control112 may be implemented completely within CMTS 102, as shown in FIG. 1.In alternative embodiments, the functionality of connection admissioncontrol 112 may be implemented completely outside of CMTS 102, or thefunctionality of connection admission control 112 may be split betweenCMTS 102 and another component.

A high level flowchart of unsolicited grant service (UGS) will bedescribed next with reference to FIG. 6.

In FIG. 6, control starts at step 602. In step 602, cable modem 104sends a connection request to CMTS 102 prior to starting a voice callvia upstream communication 108. A connection connect consists of a grantinterval (i.e., periodicity) and a grant size. The grant interval is thetime period between successive grants. The grant size represents how bigeach grant of bandwidth needs to be. Control then passes to step 604.

In step 604, CMTS 102 receives the grant interval and the requestedgrant size of the connection request. Control then passes to step 606.

In step 606, using the grant interval and the requested grant size ofthe connection request, CMTS 102 (via connection admission control 112)either accepts or rejects the voice call. Here, voice calls aresupported in a connection-based mode. Control then passes to step 608.

In step 608, if the call is accepted, then CMTS 102 generates bandwidthgrants via downstream communication 106 for the service identifier (orcable modem 104) as specified as long as cable modem 104 keepsforwarding voice packets to be serviced. The flowchart in FIG. 6 ends atthis point.

As stated above, to ensure that CMTS 102 is adequately providing enoughbandwidth to cable modem 104 for the entire voice call (or current UGSflow), DOCSIS provides a mechanism by which the CMTS software examinesconsecutive voice packets (i.e., the UGS extended headers of the voicepackets) to determine if there is an indication that extra bandwidthgrants are needed by cable modem 104 to service the voice call (i.e.,voice packets are backing up in the cable modem queue). Also, once CMTS102 starts supplying extra bandwidth grants, CMTS 102 needs to know whencable modem 104 no longer requires extra bandwidth grants (i.e., voicepackets are not backing up in the cable modem queue). In order todetermine when extra bandwidth grants are needed and when the extrabandwidth grants are no longer needed, the CMTS software examines theUGS extended headers of two consecutive voice packets. When there is nochange required in the UGS flow, the CMTS software expends unnecessaryCPU cycles comparing consecutive voice packets. The present inventionshifts the duty of examining consecutive voice packets from software tohardware, thereby obtaining significant savings in CPU cycles for theCMTS software. The example operating environment of the presentinvention is described next.

C. System Architecture Overview

FIG. 2 is a block diagram representing an example operating environmentof the present invention. It should be understood that the exampleoperating environment in FIG. 2 is shown for illustrative purposes onlyand does not limit the invention. Other implementations of the operatingenvironment described herein will be apparent to persons skilled in therelevant art(s) based on the teachings contained herein, and theinvention is directed to such other implementations.

In addition to the components described with reference to FIG. 1 above,FIG. 2 shows CMTS 102 includes a MAC 201 (media access controller) andan external upstream SDRAM 206. MAC 201 includes a packet engine 202 anda SDRAM (synchronous dynamic random access memory) controller 204. MAC201 separates the UGS extended header from the data in the voice packetand sends the header to packet engine 202 for processing (instead of theCMTS software). Packet engine 202 is implemented in hardware. As theCMTS software did previously, packet engine 202 examines the UGSextended headers for the same SID of consecutive voice packets as theyare forwarded from cable modem 104 to CMTS 102 during a voice call.

External upstream SDRAM 206 is external memory utilized by the presentinvention as will be described below. In general, SDRAM is memory thatcan run at much higher clock speeds than conventional memory. SDRAMactually synchronizes itself with the CPU's bus. It is important to notethat the present invention is not limited to using external upstreamSDRAM. Other types of memory including internal SRAM, internal registerspace, external RAMBUS memory, and so forth, may also be used by thepresent invention. The present invention is explained in terms ofexternal upstream SDRAM for illustration purposes only.

Finally, SDRAM controller 204 is responsible for issuing all read andwrite requests to external upstream SDRAM 206. As discussed above, SDRAMcontroller could also be a SRAM controller, and so forth, depending onthe type of memory used with the invention. The hardware components thatmake up packet engine 202 are described next with reference to FIG. 3.

In FIG. 3, packet engine 202 is comprised of a header processor 302, arequest DMA (direct memory access) processor 304 and a DOCSIS dataprocessor 310. Request DMA processor 304 is coupled to an upstreamrequest output queue 308 to make up the request path. (As will bedescribed below, packet engine 202 processes the UGS extended header tocreate a packet in a TLV (type length value) format. The TLV packetcontains information about the UGS extended header and travels therequest path via request DMA processor 304 and upstream request outputqueue 308.) DOCSIS data processor 310 is coupled with upstream dataoutput queues 312 to make up the data path. Header processor 302,request DMA processor 304 and DOCSIS data processor 310 communicate witheach other via a bus 316. The utility of each of these hardwarecomponents and how they operate together to ensure adequate bandwidth isbeing granted to cable modem 104 during the current UGS flow isdescribed below.

FIG. 4 illustrates that external upstream SDRAM 206 has a lookup table402. The utility of lookup table 402 is also described below. An exampleformat of a voice packet is described next with reference to FIG. 5.

D. Voice Packet Format

FIG. 5 illustrates an example format of an individual DOCSIS voicepacket used by the present invention according to an embodiment. TheDOCSIS voice packet format is well known and is described brieflyherein. An individual voice packet 502 includes a PHY prepend 506,DOCSIS header fields 508, an UGS extended header 504 (which is a subsetof DOCSIS header fields 508) and voice data 510. UGS extended header 504includes a burst SID 512 and a service flow extended header 514. Serviceflow extended header 514 includes a payload suppression byte 516 and aUGS byte 518. UGS byte 518 includes a one bit queue indicator 520 and aseven bit active grants 522. Most significant to the present inventionare queue indicator 520 and active grants 522 of UGS byte 518. Whenqueue indicator 520 is set, this indicates to MAC 201 that cable modem104 has extra voice packets that need bandwidth. Active grants 522indicates to MAC 201 how many phone lines supported by cable modem 104are currently active, and thus need bandwidth.

Another application of active grants 522 is called activity detection.Here, during a phone call, if one end is silent then there is no need intransmitting data packets with no data and sending the cable modem agrant it does not need. Bandwidth can be freed up if the cable modemreduces the value of active grants 522 by one to cause the CMTS to takeaway one of the grants. When the silent end becomes active again, thenthe cable modem increases the value of active grants 522 and the CMTSgives back the grant. An example operational embodiment of the presentinvention is described next.

E. Example Operational Embodiment of the Present Invention

FIG. 7 illustrates a high level operational embodiment of the presentinvention. In FIG. 7, control starts at step 702. In step 702, cablemodem 104 forwards a voice packet 502 (i.e., current voice packet) onupstream communication 108 and is received by MAC 201. Here, MAC 201forwards only UGS extended header 504 from voice packet 502 to packetengine 202. Control then passes to step 704.

In step 704, packet engine 202 determines whether the UGS extendedheader of the current voice packet differs from the UGS extended headerof the previous voice packet of the flow of a UGS flow (or voice call)(i.e., packet engine 202 compares the value of queue indicator 520 inthe UGS extended header of the current and previous voice packets). Inaddition, packet engine 202 also compares the value of active grants 522in the UGS extended header of the current and previous voice packets.Note that the first voice packet forwarded by cable modem 104 of thevoice call will generate an error since there is no previous voicepacket to compare it to. This is generally ignored by the presentinvention other than to store the relevant information so that the nextvoice packet and the first voice packet can be compared. If it isdetermined by step 704 that there is a difference between the currentand previous UGS extended headers for that SID, then control passes tostep 708. Alternatively, control passes to step 706.

In step 706, cable modem 104 does not currently need extra bandwidthrequests to adequately service its voice call(s). Here, nothing is sentto the CMTS software, thereby expending no CPU cycles.

In step 708, the bandwidth being granted by CMTS 102 to cable modem 104is not adequate for the UGS flow. Here, packet engine 202 processes theUGS extended header to create a packet in a TLV (type length value)format. The TLV packet contains information about the UGS extendedheader and travels the request path via request DMA processor 304 andupstream request output queue 308 (FIG. 3). The TLV format is well knownand is generally used to tell the CMTS software the type of informationand where the information begins. The TLV format is more easilyprocessed by the CMTS software. Control then passes to step 710.

In step 710, the present invention informs the CMTS software of the needto adjust the granted bandwidth in the current UGS flow by forwardingthe TLV formatted packet to the CMTS software for processing. Thus, theonly time the CMTS software expends CPU cycles is when the grantedbandwidth for the current UGS flow is not adequate. The flowchart inFIG. 7 ends at this point. TLV formatting of the present invention isdescribed next.

Each type of information processed in step 708 is formatted into a TLVcoding. Here, the type and length fields are the upper and lower nibblesof a single T-L byte. The “type” values chosen are based on those usedfor DOCSIS extended headers. For example, UGS extended headerinformation is one type field. The length field for all encoding istypically chosen so that all data remains 32-bit-aligned for easierconsumption by the CMTS software. The following Table 1 illustrates theeight bytes of TLV encoding for UGS extended header information.

TABLE 1 Number of Bytes Information 1 Type (4 bits), Length (4 bits) 2SID (14 bit SID 1sb-justified in field) 1 UGS byte (the byte from theoriginal extended header representing UGS information) 1 ChID (1 bytecontaining Channel ID byte for the upstream channel on which the UGSheader arrived) 3 Rsvd (3 bytes are reserved and should be written withzero; these bytes are present for 32-bit alignment)

Step 704 of FIG. 7 is next described in more detail with reference toFIG. 8 further illustrating how the present invention determines whetherthe current and previous UGS extended headers differ.

In FIG. 8, control starts at step 802. In step 802, packet engine 202determines the value of the burst SID of the current UGS extendedheader. Control then passes to step 804.

In step 804, packet engine 202 forwards the burst SID to SDRAMcontroller 204. Control then passes to step 806.

In step 806, SDRAM controller 204 uses the burst SID as a key or indexinto lookup table 402 in external upstream SDRAM 206 to determine thevalue of the queue indicator and the value of the active grants of theprevious UGS extended header. As described above, when the queueindicator is set, this indicates to MAC 201 that cable modem 104 hasextra voice packets that need bandwidth. The active grants fieldindicates to MAC 201 how many phone lines supported by cable modem 104are currently active for this SID, and thus need bandwidth. Control thenpasses to step 808.

In step 808, SDRAM controller 204 forwards the value of the queueindicator and the value of the active grants to packet engine 202.Control then passes to step 810.

In step 810, packet engine 202 compares the current and previous valuesof the queue indicator and the current and previous values of the activegrants. Note that with regard to the queue indicator, if the previousqueue indicator was not set and the current queue indicator is set thenthis indicates to the present invention that cable modem 104 needs extrabandwidth. Alternatively, if the previous queue indicator was set andthe current queue indicator is not set then this indicates to thepresent invention that cable modem 104 no longer needs extra bandwidth.Also note that with regard to the active grants, if the previous valueof the active grants is less than the current value of the active grantsthen this indicates to the present invention that cable modem 104 hasstarted servicing an additional one or more voice calls on that SID andthus needs extra bandwidth. Alternatively, if the previous value of theactive grants is more than the current value of the active grants thenthis indicates to the present invention that cable modem 104 has stoppedservicing one or more voice calls and thus no longer needs the extrabandwidth.

In step 810, if either the two values for the queue indicator or theactive grants differ, then control passes to step 708 in FIG. 7.Alternatively, control passes to step 706 in FIG. 7. The flowchart inFIG. 8 ends at this point. Step 708 of FIG. 7 is described next in moredetail with reference to FIG. 9 further illustrating how the presentinvention processes the UGS extended header to create a packet in a TLVformat.

In FIG. 9, control starts at step 902. In step 902, packet engine 202sends a request to SDRAM controller 204 to update the value of the queueindicator and/or active grants stored in lookup table 402 of externalupstream SDRAM 206. It is important to note that in the case where thecurrent and previous queue indicator and/or active grants do not differ,then there is no need to update its respective value stored in lookuptable 402. Control then passes to step 904.

In step 904, SDRAM controller 204 calculates the address of the locationto store the new value(s) and issues a write request to externalupstream SDRAM 206 to perform the update. Control then passes to step906.

In step 906, packet engine 202 tags the current UGS extended headerindicating an UGS extended header mismatch has occurred. Control thenpasses to step 908.

In step 908, header processor 302 parses from the current voice packetthe UGS extended header and forwards it to request DMA processor 304.Control then passes to step 910.

In step 910, request DMA processor 304 encapsulates the UGS extendedheader into a TLV packet. Control then passes to step 912.

In step 912, request DMA processor 304 stores the TLV packet in upstreamrequest output queue 308 for processing by the CMTS software. Thisindicates to the CMTS software that the bandwidth being granted to cablemodem 104 needs to be adjusted by supplying either more or lessbandwidth grants.

F. Example Environment of the Present Invention

CMTS 102, CMTS scheduler 110, cable modem scheduler 114, connectionadmission control 112, MAC 201, packet engine 202, SDRAM controller 204and DOCSIS data processor 310 may be implemented using computer 1000 asshown in FIG. 10. Obviously, more than one of these functionalcomponents could be implemented on a single computer 1000.

As stated above, the present invention is preferably implemented inhardware. Yet, one or more components of the present invention may beimplemented using hardware, software or a combination thereof and may beimplemented in a computer system or other processing system. In fact, inone embodiment, the invention is directed toward one or more computersystems capable of carrying out the functionality described herein. Thecomputer system 1000 includes one or more processors, such as processor1004. The processor 1004 is connected to a communication bus 1006.Various software embodiments are described in terms of this examplecomputer system. After reading this description, it will become apparentto a person skilled in the relevant art how to implement the inventionusing other computer systems and/or computer architectures.

Computer system 1000 also includes a main memory 1008, preferably randomaccess memory (RAM), and can also include a secondary memory 1010. Thesecondary memory 1010 can include, for example, a hard disk drive 1012and/or a removable storage drive 1014, representing a floppy disk drive,a magnetic tape drive, an optical disk drive, etc. The removable storagedrive 1014 reads from and/or writes to a removable storage unit 1018 ina well known manner. Removable storage unit 1018, represents a floppydisk, magnetic tape, optical disk, etc. which is read by and written toby removable storage drive 1014. As will be appreciated, the removablestorage unit 1018 includes a computer usable storage medium havingstored therein computer software and/or data.

In alternative embodiments, secondary memory 1010 may include othersimilar means for allowing computer programs or other instructions to beloaded into computer system 1000. Such means can include, for example, aremovable storage unit 1022 and an interface 1020. Examples of such caninclude a program cartridge and cartridge interface (such as that foundin video game devices), a removable memory chip (such as an EPROM, orPROM) and associated socket, and other removable storage units 1022 andinterfaces 1020 which allow software and data to be transferred from theremovable storage unit 1018 to computer system 1000.

Computer system 1000 can also include a communications interface 1024.Communications interface 1024 allows software and data to be transferredbetween computer system 1000 and external devices. Examples ofcommunications interface 1024 can include a modem, a network interface(such as an Ethernet card), a communications port, a PCMCIA slot andcard, etc. Software and data transferred via communications interface1024 are in the form of signals which can be electronic,electromagnetic, optical or other signals capable of being received bycommunications interface 1024. These signals 1026 are provided tocommunications interface via a channel 1028. This channel 1028 carriessignals 1026 and can be implemented using wire or cable, fiber optics, aphone line, a cellular phone link, an RF link and other communicationschannels.

In this document, the terms “computer program medium” and “computerusable medium” are used to generally refer to media such as removablestorage device 1018, a hard disk installed in hard disk drive 1012, andsignals 1026. These computer program products are means for providingsoftware to computer system 1000.

Computer programs (also called computer control logic) are stored inmain memory and/or secondary memory 1010. Computer programs can also bereceived via communications interface 1024. Such computer programs, whenexecuted, enable the computer system 1000 to perform the features of thepresent invention as discussed herein. In particular, the computerprograms, when executed, enable the processor 1004 to perform thefeatures of the present invention. Accordingly, such computer programsrepresent controllers of the computer system 1000.

In an embodiment where the invention is implemented using software, thesoftware may be stored in a computer program product and loaded intocomputer system 1000 using removable storage drive 1014, hard drive 1012or communications interface 1024. The control logic (software), whenexecuted by the processor 1004, causes the processor 1004 to perform thefunctions of the invention as described herein.

In another embodiment, the invention is implemented primarily inhardware using, for example, hardware components such as applicationspecific integrated circuits (ASICs). Implementation of the hardwarestate machine so as to perform the functions described herein will beapparent to persons skilled in the relevant art(s). In yet anotherembodiment, the invention is implemented using a combination of bothhardware and software.

G. Conclusion

While various embodiments of the present invention have been describedabove, it should be understood that they have been presented by way ofexample, and not limitation. It will be apparent to persons skilled inthe relevant art that various changes in form and detail may be madetherein without departing from the spirit and scope of the invention.This is especially true in light of technology and terms within therelevant art(s) that may be later developed. Thus, the present inventionshould not be limited by any of the above-described example embodiments,but should be defined only in accordance with the following claims andtheir equivalents.

1. A central node in a wireless point-to-multipoint communicationsystem, comprising: receiver logic configured to wirelessly receive avoice packet from a remote node in the wireless point-to-multipointcommunication system, the voice packet comprising part of an unsolicitedgrant service flow and including a current indicator data field; and ahardware-implemented packet engine configured (i) to compare the currentindicator data field with a previous indicator data field associatedwith a previously-received voice packet from the remote node todetermine if there is a difference between the current and the previousindicator data fields, and (ii) to provide an indication that thebandwidth being provided to the remote node requires adjustment for theunsolicited grant service flow responsive to a determination that thereis a difference between the current and the previous indicator datafields.